Давно не пополнялся этот раздел. Теперь мы пойдем другим путем. Начнем все создавать. И с графическим интерфейсом.
Задача наша такая. Нам надо создать файл базы данных MDB. Для начала сгененируйте приложение с использованием AppWizard на основе диалогового окна. Поместите в окно поле редактирования и кнопку Create Base. Кнопку OK удалите просто :-)

Теперь нам надо создать переменную соответствующую полю редактирования и событие реакции на нажатие кнопки.
class CCteateMDBDlg : public CDialog
{
......
// Dialog Data
//{{AFX_DATA(CCteateMDBDlg)
enum { IDD = IDD_CTEATEMDB_DIALOG };
CString m_MDB_Name;
......
void CCteateMDBDlg::OnButton1()
{
}
Для работы с функциями DAO нам надо подключить заголовочный файл. Вот так:
// CteateMDBDlg.cpp : implementation file // #include "stdafx.h" #include "CteateMDB.h" #include "CteateMDBDlg.h" #include "afxdao.h" ......
Вот можно писать код. Смотрите:
void CCteateMDBDlg::OnButton1()
{
CDaoWorkspace* cw=NULL;
CDaoDatabase* cd=NULL;
UpdateData();
try
{
cw=new CDaoWorkspace();
cd = new CDaoDatabase(cw);
cd->Create(m_MDB_Name);
cd->Close();
cw->Close();
delete cd;
delete cw;
}
catch(CDaoException* cDaoError)
{
if (cd!=NULL)
{
cd->Close();
delete cd;
}
if (cw!=NULL)
{
cw->Close();
delete cw;
}
AfxMessageBox(cDaoError->m_pErrorInfo->m_strDescription);
}
}
Я создаю рабочую область и на основе ее базу данных. В классе базы данных есть функция Create, которая уммет создавать файл базы данных.
virtual void Create( LPCTSTR lpszName, LPCTSTR lpszLocale = dbLangGeneral, int dwOptions = 0 ); throw( CDaoException, CMemoryException );
Ну и все :-) Да, я использовал try для защиты от ошибок создания базы данных. И класс, который возвращается в результате исключения для того, чтобы вывести сообщение об ошибке. Это сообщение есть краткое описание ошибки.